#ifndef ENUM_H
#define ENUM_H

#pragma once

#include <QObject>
#include <QWidget>
#include <QDebug>
#include <QMetaEnum>


class Enum : public QObject
{
    Q_OBJECT
public:
    Enum();
    ~Enum();

    /* 枚举类转化枚举器 */
    QMetaEnum meta;


    /* DataType枚举类型声明 */
    enum DataType
    {
        YEAR,
        MONTH,
        DAY,
        HOUR,
        MINUTE,
        SECOND
    };

    //DataType枚举类型注册
    Q_ENUM(DataType);

    /* DateTimeBoundary枚举类型声明 */
    enum DateTimeBoundary
    {
        YEARUP = 1950,
        YEARDOWN = 2050,
        MONTHUP = 1,
        MONTHDOWN = 12,
        DAYUP = 1,
        DAYUPDOWNOf31 = 31,
        DAYUPDOWNOf30 = 30,
        DAYUPDOWNOf29 = 29,
        DAYUPDOWNOf28 = 28,
        HOURUP = 0,
        HOURDOWN = 23,
        MINUTEUP = 0,
        MINUTEDOWN = 59,
        SECONDUP = 0,
        SECONDDOWN = 59
    };

    //DateTimeBoundary枚举类型注册
    Q_ENUM(DateTimeBoundary);

    /* Roster枚举类型的字符串导入位置 */
    QStringList dataType;

    /**
     * @brief enumerateImports 枚举类导入函数方法
     * @param *list 字符串导入地址
     * @param data 枚举类对应的枚举器
     * @return void 无
     */
    void enumerateImports(QStringList *list,QMetaEnum data);

};

#endif // ENUM_H
